#include <cmath>
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <map>
#include <set>
#include <cstring>
#define endl "\n"
int n,m,k;
char ch[1010][1010];
int shu[1010][1010];
using namespace std;
int fx[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
void dfs(int x,int y)
{
	for(int i=0;i<4;i++)
	{
		int xx=x+fx[i][0];
		int yy=y+fx[i][1];
		if(xx>=0&&xx<n&&yy>=0&&yy<m&&ch[xx][yy]=='.')
		{
			ch[xx][yy]='#';
			dfs(xx,yy);
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			cin>>ch[i][j];
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(ch[i][j]=='.')
			{
                ch[i][j]='#';
				dfs(i,j);
				k++;
			}
		}
	}
	cout<<k<<endl;
	return 0;
}
